export type LayoutType = "vertical" | "classic" | "transverse" | "columns";

export type AssemblySizeType = "large" | "default" | "small";

export type LanguageType = "zh" | "en" | null;

/* 滚动条配置 */
export interface ScrollbarConfig {
  width: number;
  height: number;
}

/* GlobalState */
export interface GlobalState {
  layout: LayoutType;
  assemblySize: AssemblySizeType;
  language: LanguageType;
  maximize: boolean;
  primary: string;
  isDark: boolean;
  isGrey: boolean;
  isWeak: boolean;
  asideInverted: boolean;
  headerInverted: boolean;
  isCollapse: boolean;
  breadcrumb: boolean;
  breadcrumbIcon: boolean;
  tabs: boolean;
  tabsIcon: boolean;
  footer: boolean;
  continuousSubmission: boolean;
  pageSpace: string;
  pageSize: number;
  fondsRouter: boolean;
  showChild: boolean;
  showOvertime: boolean;
  overtime: number;
  indexKey: string;
  lastKey: string;
  prevKey: string;
  nextKey: string;
  // 滚动条配置
  scrollbarConfig: ScrollbarConfig;
  // splitpanes位置
  splitpanesPos: any;
  // 粘贴并发数
  pasteConcurrency: number;
}

/* UserState */
export interface UserState {
  token: string;
  userInfo: any;
  userList: any[];
  fileCount: number;
}

/* tabsMenuProps */
export interface TabsMenuProps {
  icon: string;
  title: string;
  path: string;
  name: string;
  close: boolean;
}

/* TabsState */
export interface TabsState {
  tabsMenuList: TabsMenuProps[];
}

/* AuthState */
export interface AuthState {
  authButtonList: any;
  routeName: string;
  authMenuList: any;
  newAuthMenuList: any[];
}

/* KeepAliveState */
export interface KeepAliveState {
  keepAliveName: string[];
}
/* appState */
export interface AppState {
  LoadingConfig: any;
  hideRouter: any[];
  sysConfig: any;
  urlBorrrow: any[];
}
export interface LockScreenState {
  isLock: boolean; // 是否锁屏
  lockPwd: string;
  // lockTime: number;
}
// dataScreenState
export interface DataScreenState {
  isScale: boolean;
}
export interface CatalogState {
  treeNode: any;
  catalogList: any[];
  sourthCatalogList: any[];
}
/* dictionaryState */
export interface DictionaryState {
  dictionaryObj: any;
  ruleList: any[];
  scanFileNodes: any[];
  strFileNameWithoutExt: string;
  fileDir: string;
  strExtensionValue: string;
}
/* dynamicState */
export interface DynamicStore {
  // fondsObj: any;
  visibleConfig: any; // 初始化构建对象
  childVisibleConfig: any;
  tableData: any[];
  childTableData: any[];
  sourthTableData: any[];
  childSourthTableData: any[];
  fulltextData: any[];
  tableSelect: any[];
  childTableSelect: any[];
  oldModalFormData: any;
  modalFormData: any;
  fatherObj: any;
  CurrClickRow: any | null;
  pageSize: number;
  pageIndex: number;
  isShowPage: boolean;
  childLeftClick: boolean;
  copyData: any[];
  copyChildData: any[];
  childData: any[];
  datasheet: any[];
  noCatalogStatus: boolean;
  ModalFormDataChange: any[];
}
/* dynamicButton */
export interface DynamicButtonStore {
  buttonList: any[];
  fulltextButtonList: any[];
  childButtonList: any[];
}
// Catalog
export interface CatalogStateStore {
  treeNode: any;
  catalogList: any[];
  sourthCatalogList: any[];
}
/* fonds */
export interface CatalogStateStore {
  fondsObj: any;
  fondsData: any[];
}
